Python 爬虫监控女神的QQ空间新的说说,实现邮箱发送

您所在的位置:网站首页 qq空间 爬虫 Python 爬虫监控女神的QQ空间新的说说,实现邮箱发送

Python 爬虫监控女神的QQ空间新的说说,实现邮箱发送

2024-07-11 19:25| 来源: 网络整理| 查看: 265

主要实现的功能就是:监控女神的 QQ空间,一旦女神发布新的说说,你的邮箱马上就会收到说说内容,是不是想了解一下

先看看代码运行效果图: 这里写图片描述

这里写图片描述

PS:只有你有一台云服务器你就可以把程序24h运行起来

直接上代码: # -*- coding:utf-8 -*- from bs4 import BeautifulSoup from selenium import webdriver import time import random import os # by 留歌36 from email.mime.text import MIMEText import smtplib # 注意这里是配置你的源邮箱信息(发送邮件的邮箱) account = "" password = "" # 注意配置接收邮箱的信息 to = "[email protected]" # 注意是女神的qq号码 qq="你的女神的QQ号码" #使用Selenium的webdriver实例化一个浏览器对象,在这里使用Phantomjs driver = webdriver.PhantomJS(executable_path=r"F:\\phantomjs.exe") # 登录QQ空间 def get_shuoshuo(qq): try: # 注意更改http://user.qzone.qq.com/{女神的qq号码}/311 driver.get('http://user.qzone.qq.com/你的女神的QQ号码/311'.format(qq)) time.sleep(5) driver.find_element_by_id('login_div') except: print("#####,没有找到login_div,说明您在线########") sea() time.sleep(30) # 注意更改 get_shuoshuo('你的女神的QQ号码') else: print("#####,找到login_div,说明您没有登陆,现在开始登陆########") # 如果页面存在登录的DIV,则模拟登录 driver.switch_to.frame('login_frame') driver.find_element_by_id('switcher_plogin').click() driver.find_element_by_id('u').clear() # 选择用户名框 # 注意更改为你的qq号码 driver.find_element_by_id('u').send_keys('####') driver.find_element_by_id('p').clear() # 注意更改为你的qq密码 driver.find_element_by_id('p').send_keys('#####') driver.find_element_by_id('login_button').click() time.sleep(3) print("#####登陆成功########") #注意更改为你女神的QQ号码 get_shuoshuo('你的女神的QQ号码') #判断好友空间是否设置了权限,通过判断是否存在元素ID:QM_OwnerInfo_Icon driver.implicitly_wait(3) def sea(): try: driver.find_element_by_id('QM_OwnerInfo_Icon') b = True except: b = False #如果有权限能够访问到说说页面,那么定位元素和数据,并解析 if b == True: driver.switch_to.frame('app_canvas_frame') content = driver.find_elements_by_css_selector('.content') stime = driver.find_elements_by_css_selector('.c_tx.c_tx3.goDetail') shuoshuo = content[0].text shijian= stime[0].text context = '说说内容为:'+ shuoshuo # context = '说说内容为:' + shuoshuo + " " + '发表时间是:' + shijian cun = ''.join(context) if toCheck(cun): # 调用发送邮件的函数 print("##########准备发送邮件##########") send(to, "女神空间更新啦~~", context) print("##########发送邮件完成##########") print("##########准备保存说说##########") toSave(cun) print("##########保存说说完成##########") else: print('***还没有发布新的说说***') # driver.close() # driver.quit() # 发送邮件的函数 def send(to, title, content): msg = MIMEText(content) msg['Content-Type'] = 'text/plain; charset="utf-8"' msg['Subject'] = title msg['From'] = account msg['To'] = to try: smtp = smtplib.SMTP() smtp.connect('smtp.163.com') smtp.login(account, password) smtp.sendmail(account, to, msg.as_string()) smtp.close() except Exception as e : print (str(e)) # 检查是否有新的内容发布 def toCheck(data): if not os.path.exists('shuoshuo.txt'): return True else: f = open('shuoshuo.txt','r') existshuoshuo= f.readlines(); if data + '\n' in existshuoshuo: return False else: return True # 保存说说内容到本地 def toSave(text): f = open('shuoshuo.txt' , mode='a') f.write(text+ '\n') f.close() #让代码在服务器上一直跑着 while True: get_shuoshuo(qq)

*如果你有什么好的建议可以留言呢 有什么问题也可以留言,我会尽量第一时间回复你的*



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3